const fs = require("fs");
const path = require("path");

// 获取所有模块的函数
function getMockModules() {
  return new Promise((resolve, reject) => {
    let modules = [];
    // 读取modules目录下的所有文件
    fs.readdir(path.resolve(__dirname, "./modules"), function (err, files) {
      if (err) {
        reject(err);
        return;
      }
      // 遍历所有文件
      files.forEach((file) => {
        // 通过require函数加载文件的内容
        const module = require("./modules/" + file);
        // 将内容汇总到modules里面
        modules = [...modules, ...module];
      });

      resolve(modules);
    });
  });
}

module.exports = async function setupMock(app) {
  const modules = await getMockModules();
  // 遍历生成路由
  modules.forEach((module) => {
    app[module.method](module.url, function (req, res) {
      res.json(module.response);
    });
  });
};
